In many internet gaming applications, data concerning gaming environments are provided to each client machine by a particular data server selected from several data servers in a network according to respective load conditions of these data servers. FIG. 1 illustrates an existing communication system 100 that is configured to support an online gaming application. A client machine 11 first downloads source programs from a resource server 12. Up completion of downloading the source programs, client machine 11 sends a request to establish a network socket with a data server to a directory server 14. Directory server 14 monitors the load conditions of data servers 13 in the network and keeps tracks of a list of available data servers 13. Therefore, directory server 14 returns the list of available data servers 13 to client machine 11, which thereby establishes a network socket with one of available data servers 13.
Despite its acceptable performance, the communication system 100 is plagued with several problems that significantly impact user experiences with internet gaming. When available data servers (e.g., server 131 or 132) tracked by directory server 14 are hosted by more than one service providers, directory server 14 may mistakenly provide client machine 11 registered with one service provider with an IP address of a data server that belongs to another service provider. This occurs primarily because directory server 14 maps IP addresses to wrong domain names for data servers 13 that correspond to the different service providers.
Under some circumstances, client machine 11 waits for directory server 14 to return an IP address of an available data server within a predetermined period of time, e.g., 20 seconds. Although this period of time already has an extended length, directory server 14 may still require a longer time to return the IP address for one of available data servers 13. On the other hand, even if directory server 14 returns the IP address at the end of the predetermined period of time, the actual IP address of the corresponding data server may have already changed because of the extended length of time used by directory server 14. As a result, no valid IP address is returned to client machine 11 within the predetermined period of time, and despite the wait over the extended length of time, client machine 11 still fails to establish the network socket to receive data concerning gaming environments from an available data server.
Therefore, a need exists to efficiently utilize resources in a communication system such that information of an available data server may be promptly returned to improve user experiences in an online gaming application based on such a communication system.